package com.entmanage.base.collegeco.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.entmanage.common.annotation.Excel;
import com.entmanage.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 实习生成绩鉴定主对象 hrm_intern_evaluation
 *
 * @author lsq
 * @date 2025-08-01
 */
public class CollegecoInternEvaluation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 鉴定ID */
    private Long evaluationId;

    /** 实习生ID */
    @Excel(name = "实习生ID")
    private Long internId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 员工ID（转正后） */
    @Excel(name = "员工ID", readConverterExp = "转=正后")
    private Long empId;

    /** 使用的评分模板ID（企业） */
    @Excel(name = "使用的评分模板ID（企业）")
    private Long templateId;

    /** 使用的评分模板ID（教师） */
    @Excel(name = "使用的评分模板ID（教师）")
    private Long teaTemplateId;

    /** 模板名称（冗余，防止模板删除影响历史数据） */
    @Excel(name = "模板名称", readConverterExp = "冗=余，防止模板删除影响历史数据")
    private String templateName;

    /** 自我鉴定 */
    @Excel(name = "自我鉴定")
    private String selfEvaluation;

    /** 总分 */
    @Excel(name = "总分")
    private BigDecimal totalScore;

    /** 总满分（自动计算） */
    @Excel(name = "总满分", readConverterExp = "自动计算")
    private BigDecimal totalMaxScore;

    /** 等级：优秀、良好、合格、不合格 */
    @Excel(name = "等级：优秀、良好、合格、不合格")
    private String grade;

    /** 单位综合意见 */
    @Excel(name = "单位综合意见")
    private String companyOpinion;

    /** 评价人姓名 */
    @Excel(name = "评价人姓名")
    private String evaluatorName;

    /** 评价人职位 */
    @Excel(name = "评价人职位")
    private String evaluatorPosition;

    /** 评价日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "评价日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date evaluateTime;

    /** 1-草稿, 2-已提交, 3-已归档 */
    @Excel(name = "1-草稿, 2-已提交, 3-已归档")
    private String status;

    /** 实习生成绩打分明细信息 */
    @ApiModelProperty(value = "实习生成绩打分明细信息（企业）")
    private List<CollegecoInternEvalScore> hrmInternEvalScoreList;

    /** 实习生成绩打分明细信息 */
    @ApiModelProperty(value = "实习生成绩打分明细信息（教师）")
    private List<CollegecoInternEvalScore> hrmInternEvalScoreTeacherList;

    /** 实习评分标准模板库（主）信息 */
    @ApiModelProperty(value = "实习评分标准模板库（主）信息")
    private List<CollegecoEvalTemplate> hrmEvalTemplateList;

    /** 删除逻辑标识 */
    @ApiModelProperty(value = "删除逻辑标识")
    private String delFlag;

    /** 部门ID */
    @Excel(name = "部门ID")
    @ApiModelProperty(value = "部门ID")
    private Long deptId;


    public void setEvaluationId(Long evaluationId)
    {
        this.evaluationId = evaluationId;
    }

    public Long getEvaluationId()
    {
        return evaluationId;
    }
    public void setInternId(Long internId)
    {
        this.internId = internId;
    }

    public Long getInternId()
    {
        return internId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setEmpId(Long empId)
    {
        this.empId = empId;
    }

    public Long getEmpId()
    {
        return empId;
    }
    public void setTemplateId(Long templateId)
    {
        this.templateId = templateId;
    }

    public Long getTemplateId()
    {
        return templateId;
    }
    public void setTeaTemplateId(Long teaTemplateId)
    {
        this.teaTemplateId = teaTemplateId;
    }
    public Long getTeaTemplateId()
    {
        return teaTemplateId;
    }
    public void setTemplateName(String templateName)
    {
        this.templateName = templateName;
    }

    public String getTemplateName()
    {
        return templateName;
    }
    public void setSelfEvaluation(String selfEvaluation)
    {
        this.selfEvaluation = selfEvaluation;
    }

    public String getSelfEvaluation()
    {
        return selfEvaluation;
    }
    public void setTotalScore(BigDecimal totalScore)
    {
        this.totalScore = totalScore;
    }

    public BigDecimal getTotalScore()
    {
        return totalScore;
    }
    public void setTotalMaxScore(BigDecimal totalMaxScore)
    {
        this.totalMaxScore = totalMaxScore;
    }

    public BigDecimal getTotalMaxScore()
    {
        return totalMaxScore;
    }
    public void setGrade(String grade)
    {
        this.grade = grade;
    }

    public String getGrade()
    {
        return grade;
    }
    public void setCompanyOpinion(String companyOpinion)
    {
        this.companyOpinion = companyOpinion;
    }

    public String getCompanyOpinion()
    {
        return companyOpinion;
    }
    public void setEvaluatorName(String evaluatorName)
    {
        this.evaluatorName = evaluatorName;
    }

    public String getEvaluatorName()
    {
        return evaluatorName;
    }
    public void setEvaluatorPosition(String evaluatorPosition)
    {
        this.evaluatorPosition = evaluatorPosition;
    }

    public String getEvaluatorPosition()
    {
        return evaluatorPosition;
    }
    public void setEvaluateTime(Date evaluateTime)
    {
        this.evaluateTime = evaluateTime;
    }

    public Date getEvaluateTime()
    {
        return evaluateTime;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public List<CollegecoInternEvalScore> getHrmInternEvalScoreList()
    {
        return hrmInternEvalScoreList;
    }

    public void setHrmInternEvalScoreList(List<CollegecoInternEvalScore> hrmInternEvalScoreList)
    {
        this.hrmInternEvalScoreList = hrmInternEvalScoreList;
    }

    public List<CollegecoEvalTemplate> getHrmEvalTemplateList()
    {
        return hrmEvalTemplateList;
    }

    public void setHrmEvalTemplateList(List<CollegecoEvalTemplate> hrmEvalTemplateList)
    {
        this.hrmEvalTemplateList = hrmEvalTemplateList;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("evaluationId", getEvaluationId())
                .append("internId", getInternId())
                .append("userId", getUserId())
                .append("empId", getEmpId())
                .append("templateId", getTemplateId())
                .append("teaTemplateId", getTeaTemplateId())
                .append("templateName", getTemplateName())
                .append("selfEvaluation", getSelfEvaluation())
                .append("totalScore", getTotalScore())
                .append("totalMaxScore", getTotalMaxScore())
                .append("grade", getGrade())
                .append("companyOpinion", getCompanyOpinion())
                .append("evaluatorName", getEvaluatorName())
                .append("evaluatorPosition", getEvaluatorPosition())
                .append("evaluateTime", getEvaluateTime())
                .append("status", getStatus())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("hrmInternEvalScoreList", getHrmInternEvalScoreList())
                .append("hrmEvalTemplateList", getHrmEvalTemplateList())
                .append("deptId", getDeptId())
                .append("hrmInternEvalScoreTeacherList", getHrmInternEvalScoreTeacherList())
                .toString();
    }

    public List<CollegecoInternEvalScore> getHrmInternEvalScoreTeacherList() {
        return hrmInternEvalScoreTeacherList;
    }

    public void setHrmInternEvalScoreTeacherList(List<CollegecoInternEvalScore> hrmInternEvalScoreTeacherList) {
        this.hrmInternEvalScoreTeacherList = hrmInternEvalScoreTeacherList;
    }
}

